Search utilities are common throughout various computing environments such as the world-wide-web and in various computer applications such as electronic mail, word processing, and other desktop applications. A large number of computer users still only enter a single search term into the search utility, because complex search queries are difficult for the average computer user to construct. As a result, the search utility often returns an overwhelming amount of data that satisfies the search query. The user manually sorts through the search results to find the desired information.
To address this problem, programmers developed various mechanisms to aid computer users in constructing search queries. One such mechanism is Query by Example (QBE), which is a method of query creation that allows the computer user to search for documents based on an example in the form of a selected text string, a document name, or a list of documents. Because the QBE system formulates the actual query, QBE is easier to learn than formal query languages, such as the standard Structured Query Language (SQL), and can produce powerful searches. For example, in QBE the location of the user's cursor on a computer display can be used to determine if the user is looking at his or her calendar program. The user can highlight a term of calendar entry and ask the QBE mechanism to search for other documents containing that term.
Often, the result of the QBE is displayed to the user based on a single property (e.g., a date or a keyword). For example, a document containing an exact match of the QBE term is determined to be more likely of interest to the user than a document containing a derivative of the QBE term. Accordingly, the result of the QBE is displayed to the user based upon this assumption. However, in some circumstances the user may actually be more interested in the document containing the derivative of the QBE term, because the user may have an upcoming event focused on the derivative QBE term. Basing the QBE search results on a single property often does not produce an accurate reflection of what is important to the user.